import http from '@/utils/http'
import store, { AppDispatch } from '..'

/**
 * 获取评论或评论回复
 * @param type   评论类型，a-对文章(article)的评论，c-对评论(comment)的回复
 * @param source 源id，文章id或评论id
 * @returns
 */
export const getComments = ({ type = 'a', source = '' }) => {
  return async (dispatch: AppDispatch) => {
    const res = await http.get(`/v1_0/comments`, { params: { type, source } })
    console.log(`/v1_0/comments`, res)
    dispatch({ type: 'comment/saveComments', payload: res.data })
  }
}

/**
 * 对文章或者评论进行评论
 * @param target    评论的目标id（评论文章即为文章id，对评论进行回复则为评论id）
 * @param content   评论内容
 * @param art_id    文章id，对评论内容发表回复时，需要传递此参数，表明所属文章id。对文章进行评论，不要传此参数。
 * @returns
 */
export function addComment({ target = '', content = '', art_id = '' }) {
  return async (dispatch: AppDispatch) => {
    const res = await http.post('/v1_0/comments', { target, content, art_id })
    console.log(`/v1_0/comments`, res)
    const { detail } = store.getState().article
    // console.log(comments)
    dispatch({ type: 'comment/addComments', payload: res.data.new_obj })
    dispatch({ type: 'article/changeDetail', payload: { comm_count: detail.comm_count + 1 } })
  }
}
